22#include "core/internal/config.h"
32#include <Eigen/Geometry>
33#include <Eigen/Sparse>
47#include "yaml-cpp/yaml.h"
48#include "yaml-schema-cpp/yaml_conversion.hpp"
68#define M_TORAD 0.017453292519943295769236907684886127134
69#define M_TODEG 57.295779513082320876798154814105170332
74const double EPS = 1e-8;
155template <
int Size,
int DesiredSize>
158 template <
typename T>
161 static_assert(Size == DesiredSize,
"Size of static Vector or Matrix does not match");
165template <
int DesiredSize>
168 template <
typename T>
171 assert(t == DesiredSize &&
"Size of dynamic Vector or Matrix does not match");
175template <
int DesiredR,
int DesiredC>
186 template <
typename T>
201#define WOLF_DECLARED_PTR_TYPEDEFS(Name) \
202 typedef std::shared_ptr<Name> Name##Ptr; \
203 typedef std::shared_ptr<const Name> Name##ConstPtr; \
204 typedef std::weak_ptr<Name> Name##WPtr; \
205 typedef std::weak_ptr<const Name> Name##ConstWPtr;
207#define WOLF_DECLARED_LIST_TYPEDEFS(Name) \
208 typedef std::list<Name##Ptr> Name##PtrList; \
209 typedef Name##PtrList::iterator Name##PtrListIter; \
210 typedef Name##PtrList::const_iterator Name##PtrListConstIter; \
211 typedef Name##PtrList::reverse_iterator Name##PtrListRevIter; \
212 typedef std::list<Name##WPtr> Name##WPtrList; \
213 typedef Name##WPtrList::iterator Name##WPtrListIter; \
214 typedef Name##WPtrList::const_iterator Name##WPtrListConstIter; \
215 typedef Name##WPtrList::reverse_iterator Name##WPtrListRevIter; \
216 typedef std::list<Name##ConstPtr> Name##ConstPtrList; \
217 typedef Name##ConstPtrList::iterator Name##ConstPtrListIter; \
218 typedef Name##ConstPtrList::const_iterator Name##ConstPtrListConstIter; \
219 typedef Name##ConstPtrList::reverse_iterator Name##ConstPtrListRevIter; \
220 typedef std::list<Name##ConstWPtr> Name##ConstWPtrList; \
221 typedef Name##ConstWPtrList::iterator Name##ConstWPtrListIter; \
222 typedef Name##ConstWPtrList::const_iterator Name##ConstWPtrListConstIter; \
223 typedef Name##ConstWPtrList::reverse_iterator Name##ConstWPtrListRevIter;
225#define WOLF_DECLARED_SET_TYPEDEFS(Name) \
226 typedef std::set<Name##Ptr> Name##PtrSet; \
227 typedef Name##PtrSet::iterator Name##PtrSetIter; \
228 typedef Name##PtrSet::const_iterator Name##PtrSetConstIter; \
229 typedef Name##PtrSet::reverse_iterator Name##PtrSetRevIter; \
230 typedef std::set<Name##WPtr> Name##WPtrSet; \
231 typedef Name##WPtrSet::iterator Name##WPtrSetIter; \
232 typedef Name##WPtrSet::const_iterator Name##WPtrSetConstIter; \
233 typedef Name##WPtrSet::reverse_iterator Name##WPtrSetRevIter; \
234 typedef std::set<Name##ConstPtr> Name##ConstPtrSet; \
235 typedef Name##ConstPtrSet::iterator Name##ConstPtrSetIter; \
236 typedef Name##ConstPtrSet::const_iterator Name##ConstPtrSetConstIter; \
237 typedef Name##ConstPtrSet::reverse_iterator Name##ConstPtrSetRevIter; \
238 typedef std::set<Name##ConstWPtr> Name##ConstWPtrSet; \
239 typedef Name##ConstWPtrSet::iterator Name##ConstWPtrSetIter; \
240 typedef Name##ConstWPtrSet::const_iterator Name##ConstWPtrSetConstIter; \
241 typedef Name##ConstWPtrSet::reverse_iterator Name##ConstWPtrSetRevIter;
243#define WOLF_PTR_TYPEDEFS(ClassName) \
245 WOLF_DECLARED_PTR_TYPEDEFS(ClassName); \
246 WOLF_DECLARED_LIST_TYPEDEFS(ClassName); \
247 WOLF_DECLARED_SET_TYPEDEFS(ClassName);
249#define WOLF_STRUCT_PTR_TYPEDEFS(StructName) \
251 WOLF_DECLARED_PTR_TYPEDEFS(StructName); \
252 WOLF_DECLARED_LIST_TYPEDEFS(StructName); \
253 WOLF_DECLARED_SET_TYPEDEFS(StructName);
320 return (stat(_name.c_str(), &buffer) == 0);
325 return Eigen::Vector3d(0, 0, -9.806);
Definition: capture_base.h:39
Definition: factor_base.h:72
Definition: feature_base.h:38
Definition: frame_base.h:38
Definition: hardware_base.h:36
Definition: landmark_base.h:92
Definition: local_parametrization_base.h:26
Definition: map_base.h:98
Base class for Nodes.
Definition: node_base.h:74
Definition: node_state_blocks.h:32
Definition: processor_base.h:118
class for Motion processors
Definition: processor_motion.h:110
Definition: sensor_base.h:124
Definition: state_angle.h:27
class StateBlock
Definition: state_block.h:73
State block for general 2D points and positions.
Definition: state_block_derived.h:87
State block for general 3D points and positions.
Definition: state_block_derived.h:147
Definition: state_quaternion.h:27
TimeStamp implements basic functionalities for time stamps.
Definition: time_stamp.h:39
Definition: trajectory_base.h:37
Definition: tree_manager_base.h:73
Namespace extending Eigen definitions.
Definition: wolf.h:94
Matrix< double, 6, 6 > Matrix6d
6x6 matrix of real double type
Definition: wolf.h:98
Matrix< double, Dynamic, Dynamic, RowMajor > MatrixRowXd
dynamic rowmajor matrix of real double type
Definition: wolf.h:115
Matrix< double, 5, 5 > Matrix5d
5x5 matrix of real double type
Definition: wolf.h:97
Matrix< double, 7, 7 > Matrix7d
7x7 matrix of real double type
Definition: wolf.h:99
Matrix< double, 10, 10 > Matrix10d
10x10 matrix of real double type
Definition: wolf.h:102
Matrix< double, 10, 1 > Vector10d
10-vector of real double type
Definition: wolf.h:109
Matrix< double, 1, 1 > Vector1d
1-vector of real double type
Definition: wolf.h:103
Matrix< double, 1, 1 > Matrix1d
1x1 matrix of real double type
Definition: wolf.h:96
Matrix< double, 7, 1 > Vector7d
7-vector of real double type
Definition: wolf.h:106
Matrix< double, 5, 1 > Vector5d
5-vector of real double type
Definition: wolf.h:104
Matrix< double, 8, 8 > Matrix8d
8x8 matrix of real double type
Definition: wolf.h:100
Matrix< double, 6, 1 > Vector6d
6-vector of real double type
Definition: wolf.h:105
Matrix< double, 9, 1 > Vector9d
9-vector of real double type
Definition: wolf.h:108
SparseMatrix< double > SparseMatrixd
Definition: wolf.h:112
Matrix< double, 9, 9 > Matrix9d
9x9 matrix of real double type
Definition: wolf.h:101
Matrix< double, 8, 1 > Vector8d
8-vector of real double type
Definition: wolf.h:107
const double EPS_SMALL
Definition: wolf.h:76
const double EPS
Definition: wolf.h:74
Definition: capture_base.h:23
std::size_t SizeStd
Other containers size type for the Wolf project.
Definition: wolf.h:66
std::map< TimeStamp, FrameBaseConstPtr > FrameConstPtrMap
Definition: wolf.h:287
std::map< TimeStamp, FrameBasePtr > FramePtrMap
Definition: wolf.h:286
EIGEN_DEFAULT_DENSE_INDEX_TYPE SizeEigen
Vector and Matrices size type for the Wolf project.
Definition: wolf.h:58
bool file_exists(const std::string &_name)
Definition: wolf.h:317
WOLF_REGISTER_FOLDER("core", _WOLF_SCHEMA_DIR)
const Eigen::Vector3d gravity(void)
Definition: wolf.h:323
WOLF_PTR_TYPEDEFS(CaptureLandmarksExternal)
static void check(const T &t)
Assert matrix size dynamically or statically.
Definition: wolf.h:187
StaticSizeCheck(const T &t)
Definition: wolf.h:169
StaticSizeCheck(const T &)
Definition: wolf.h:159